﻿using System;
using System.Collections.Generic;
using vudu.Logica.Comandos;
using vudu.ClasesDominio;
using vudu.Logica.Comandos.VU_08;
using vudu.Logica.Comandos.VU_08_Gestionar_Notas_de_Estudiantes;
using vudu.Logica.Comandos.VU_09_Gestionar_Carga_de_Archivos_PDF;

namespace vudu.Logica.Fabrica
{
    public class FabricaComando
    {
        //public static ComandoAgregarMateria CrearComandoAgregarMateria(Materia materia)
        //{
        //    return new ComandoAgregarMateria(materia);
        //}

        #region Comandos GRUPO 2

        public static ComandoAgregarPractica CrearComandoAgregarPractica(Practica practica, int idSeccionMateria)
        {
            return new ComandoAgregarPractica(practica, idSeccionMateria);
        }

        public static ComandoObtenerMateriasActivasConSeccTeoria CrearComandoObtenerMateriasActivasConSeccTeoria(
            string nombreEscuela)
        {
            return new ComandoObtenerMateriasActivasConSeccTeoria(nombreEscuela);
        }

        public static ComandoArmarEscuela CrearComandoArmarEscuela(string correoEscuela)
        {
            return new ComandoArmarEscuela(correoEscuela);
        }

        public static ComandoArmarListaDeSeccionesDisponibles CrearComandoArmarListaDeSeccionesDisponibles(int idEscuela, int idMateria)
        {
            return new ComandoArmarListaDeSeccionesDisponibles (idEscuela,idMateria);
        }

        public static ComandoConsultarProfesores CrearComandoConsultarProfesores(int idEscuela)
        {
            return new ComandoConsultarProfesores(idEscuela);
        }

        public static ComandoListaSalonesDisponibles CrearComandoListaSalonesDisponibles(HorarioDeClase horario, string nombreEscuela,
                                                                                            int idEscuela, int idProfesor)
        {
            return new ComandoListaSalonesDisponibles(horario, nombreEscuela, idEscuela, idProfesor);
        }

        public static ComandoConsultarPracticasDadaSeccionMateria CrearComandoConsultarPracticasDadaSeccionMateria(int idSeccionMateria) 
        {
            return new ComandoConsultarPracticasDadaSeccionMateria(idSeccionMateria);
        }

        public static ComandoEliminarPractica CrearComandoEliminarPractica(int idPractica)
        {
            return new ComandoEliminarPractica(idPractica);
        }

        public static ComandoConsultarPractica CrearComandoConsultarPractica(int idPractica)
        {
            return new ComandoConsultarPractica(idPractica);
        }

        public static ComandoModificarPractica CrearComandoModificarPractica(Practica miPractica)
        {
            return new ComandoModificarPractica(miPractica);
        }

        public static Comando<List<Materia>> CrearComandoConsultarListaMateriasConPractica(string nombreEscuela)
        {
            return new ComandoConsultarListaMateriasConPractica(nombreEscuela);
        }

        #endregion

        #region Comandos GRUPO 9
        public static ComandoAgregarEscuela CrearComandoAgregarEscuela(Escuela nuevaEscuela, String universidad)
        {
            return new ComandoAgregarEscuela(nuevaEscuela, universidad);
        }

        public static ComandoConsultarEscuela CrearComandoConsultarEscuela(String universidad)
        {
            return new ComandoConsultarEscuela(universidad);
        }

        public static ComandoEliminarEscuela CrearComandoEliminarEscuela(int escuela)
        {
            return new ComandoEliminarEscuela(escuela);
        }

        public static ComandoModificarEscuela CrearComandoModificarEscuela(Escuela nuevaEscuela, String universidad)
        {
            return new ComandoModificarEscuela(nuevaEscuela, universidad);
        }

        #endregion

        #region Comandos GRUPO 3

        public static ComandoCrearPensum CrearComandoCrearPensum(Pensum p)
        {
            return new ComandoCrearPensum(p);
        }

        public static ComandoConsultarEscuelasVecinas CrearComandoConsultarEscuelaVecinas(int id)
        {
            return new ComandoConsultarEscuelasVecinas(id);
        }

        public static ComandoConsultarMateriasDeEscuela CrearComandoConsultarMateriasDeEscuela(int id)
        {
            return new ComandoConsultarMateriasDeEscuela(id);
        }

        public static ComandoConsultarMateriasDePensum CrearComandoConsultarMateriasDePensum(int id)
        {
            return new ComandoConsultarMateriasDePensum(id);
        }

        public static ComandoConsultarPrelacionesDeMateria CrearComandoConsultarPrelacionesDeMateria(int idPensum, int idMateria)
        {
            return new ComandoConsultarPrelacionesDeMateria(idPensum, idMateria);
        }

        public static ComandoConsultarPensumsDeEscuela CrearComandoConsultarPensumsArchivadosDeEscuela(Escuela e, int tipoConsulta)
        {
            return new ComandoConsultarPensumsDeEscuela(e, tipoConsulta);
        }

        public static ComandoAgregarMateriaEnPensum CrearComandoAgregarMateriaEnPensum(Pensum p, List<Prelacion> sm)
        {
            return new ComandoAgregarMateriaEnPensum(p, sm);
        }

        public static ComandoConsultarMateriasDePensumPorSemestre CrearComandoConsultarMateriasDePensumPorSemestre(Pensum p, int num)
        {
            return new ComandoConsultarMateriasDePensumPorSemestre(p, num);
        }

        public static ComandoConsultarMateriasDeSemestresInferiores CrearComandoConsultarMateriasSemestresInferiores(Pensum p, int num, Materia m)
        {
            return new ComandoConsultarMateriasDeSemestresInferiores(p, num, m);
        }

        public static ComandoAgregarPrelacionesDeMateria CrearComandoAgregarPrelacionesDeMateria(Materia m, List<Materia> pm, Pensum p)
        {
            return new ComandoAgregarPrelacionesDeMateria(m, pm, p);
        }

        public static ComandoEliminarPensum CrearComandoEliminarPensum(int idPensum)
        {
            return new ComandoEliminarPensum(idPensum);
        }

        public static ComandoConsultarPensumActivo CrearComandoConsultarPensumActivo(int idEscuela)
        {
            return new ComandoConsultarPensumActivo(idEscuela);
        }

        public static ComandoArchivarPensum CrearComandoArchivarPensum(int idPensum)
        {
            return new ComandoArchivarPensum(idPensum);
        }

        public static ComandoConsultarPeriodoAcademico CrearComandoConsultarPeriodoAcademico()
        {
            return new ComandoConsultarPeriodoAcademico();
        }

        public static ComandoActivarPensum CrearComandoActivarPensum(int idPensum, int idPeriodo)
        {
            return new ComandoActivarPensum(idPensum, idPeriodo);
        }

        public static ComandoEliminarPrelacion CrearComandoEliminarPrelacion(Materia m, List<Materia> prelaciones, Pensum pensum)
        {
            return new ComandoEliminarPrelacion(m, prelaciones, pensum);
        }

        public static ComandoEliminarMateriaPensum CrearComandoEliminarMateriaPensum(List<Materia> m, Pensum p)
        {
            return new ComandoEliminarMateriaPensum(m, p);
        }

        public static ComandoConsultaMateriaEscuela CrearComandoG3MateriaEscuela(int idEscuela)
        {
            return new ComandoConsultaMateriaEscuela(idEscuela);
        }

        public static ComandoConsultarMateriaSeccion CrearComandoConsultarMateriaSeccionG3(int idMateria)
        {
            return new ComandoConsultarMateriaSeccion(idMateria);
        }

        public static ComandoConsultarEstudiantesSeccion CrearComandoConsultarEstudiantesSeccionG3(int idSeccion)
        {
            return new ComandoConsultarEstudiantesSeccion(idSeccion);
        }

        #endregion

        #region Comandos GRUPO 4

        public static ComandoBuscarEstudianteCedula CrearComandoBuscarEstudianteCedula(int cedula, int escuela)
        {
            return new ComandoBuscarEstudianteCedula(cedula,escuela);
        }

        public static ComandoBuscarEstudiantePorExpediente CrearComandoBuscarEstudianteExpediente(int expediente, int escuela)
        {
            return new ComandoBuscarEstudiantePorExpediente(expediente, escuela);
        }

        public static ComandoAgregarEstudiante CrearComandoAgregarEstudiante(Estudiante miEstudiante, int miEscuela)
        {
            return new ComandoAgregarEstudiante(miEstudiante,miEscuela);
        }
        public static ComandoLlenarComboRegistroUni CrearComandoLlenarComboUniversidad()
        {
            return new ComandoLlenarComboRegistroUni();
        }

        public static ComandoLlenarComboUniversidadesActivas CrearComandoLlenarComboUniversidadesActivas()
        {
            return new ComandoLlenarComboUniversidadesActivas();
        }

        public static ComandoLlenarComboRegistroEscuela CrearComandoLlenarComboEscuela(int idUniversidad)
        {
            return new ComandoLlenarComboRegistroEscuela(idUniversidad);
        }

        public static ComandoLlenarComboMateriasProfesor CrearComandoLlenarComboMateriasProfesor(Profesor profesor)
        {
            return new ComandoLlenarComboMateriasProfesor(profesor);
        }

        public static ComandoAgregarEsquemaEvaluacion CrearComandoAgregarEsquemaEvaluacion(Evaluacion evaluacion)
        {
            return new ComandoAgregarEsquemaEvaluacion(evaluacion);
        }

        public static ComandoLlenarListaSeccionesEsquemaEvaluacionProfesor CrearComandoLlenarListaSeccionesEsquemaEvaluacionProfesor(Profesor profesor)
        {
            return new ComandoLlenarListaSeccionesEsquemaEvaluacionProfesor(profesor);
        }

        public static ComandoLlenarListaSeccionesEsquemaEvaluacionEstudiante CrearComandoLlenarListaSeccionesEsquemaEvaluacionEstudiante(Estudiante estudiante)
        {
            return new ComandoLlenarListaSeccionesEsquemaEvaluacionEstudiante(estudiante);
        }

        public static ComandoCargarTablaEsquemaEvaluacion CrearComandoCargarTablaEsquemaEvaluacion(SeccionMateria seccion)
        {
            return new ComandoCargarTablaEsquemaEvaluacion(seccion);
        }

        public static ComandoEliminarEsquemaEvaluacion CrearComandoEliminarEsquemaEvaluacion(SeccionMateria seccion)
        {
            return new ComandoEliminarEsquemaEvaluacion(seccion);
        }

        public static ComandoModificarEsquemaEvaluacion CrearComandoModificarEsquemaEvaluacion(Evaluacion evaluacion)
        {
            return new ComandoModificarEsquemaEvaluacion(evaluacion);
        }

        public static ComandoLlenarListaEsquemaEvaluacionSinNotas CrearComandoLlenarListaEsquemaEvaluacionSinNotas(Profesor profesor)
        {
            return new ComandoLlenarListaEsquemaEvaluacionSinNotas(profesor);
        }

        #endregion

        #region comandos grupo 1

        public static ComandoConsultarMateriasPrematricula CrearComandoConsultarMateriasPrematricula(
            Estudiante estudiante, int semestreActual)
        {
            return new ComandoConsultarMateriasPrematricula(estudiante, semestreActual);
        }

        public static ComandoConsultarSeccionesDeUnaMateria CrearComandoConsultarSeccionesDeUnaMateria(Materia materia)
        {
            return new ComandoConsultarSeccionesDeUnaMateria(materia);
        }

        public static ComandoConsultarHorarioDeClaseSeccion CrearComandoConsultarHorarioDeClaseSeccion(SeccionMateria seccionMateria)
        {
            return new ComandoConsultarHorarioDeClaseSeccion(seccionMateria);
        }
        public static ComandoConsultarPrematricula CrearComandoConsultarPrematricula(Estudiante estudiante)
        {
            return new ComandoConsultarPrematricula(estudiante);
        }

        public static ComandoConsultarInformacionPrematricula CrearComandoConsultarInformacionPrematricula(Prematricula prematricula)
        {
            return new ComandoConsultarInformacionPrematricula(prematricula);
        }

        public static ComandoInsertarPrematricula CrearComandoInsertarPrematricula(Prematricula prematricula)
        {
            return new ComandoInsertarPrematricula(prematricula);
        }
        public static ComandoInsertarPrematriculaSeccionMateria CrearComandoInsertarPrematriculaSeccionMateria
            (int fkPrematricula, int fkPractica, int fkSeccionMateria)
        {
            return new ComandoInsertarPrematriculaSeccionMateria(fkPrematricula,fkPractica,fkSeccionMateria);
        }
        public static ComandoConsultarInformacionEstudiante CrearComandoConsultarInformacionEstudiante(Estudiante estudiante)
        {
            return new ComandoConsultarInformacionEstudiante(estudiante);
        }
        public static ComandoEliminarPrematricula CrearComandoEliminarPrematricula(Prematricula prematricula)
        {
            return new ComandoEliminarPrematricula(prematricula);
        }
        public static ComandoAprobarPrematricula CrearComandoAprobarPrematricula(Prematricula prematricula)
        {
            return new ComandoAprobarPrematricula(prematricula);
        }
        public static ComandoConsultarEstudiantesConPrematricula CrearComandoConsultarEstudiantesConPrematricula()
        {
            return new ComandoConsultarEstudiantesConPrematricula();
        }
        #endregion

        #region Comandos GRUPO 8 
        public static ComandoAgregarProfesor CrearComandoAgregarProfesor(Profesor profesor, int idEscuela)
        {
            return new ComandoAgregarProfesor(profesor,idEscuela);
        }


        public static ComandoConsultarProfesoresEscuela CrearComandoConsultarProfesoresEscuela(int idEscuela)
        {
            return new ComandoConsultarProfesoresEscuela(idEscuela);
        }


        public static  ComandoVerificarUsuarioRolEscuela 
            CrearComandoVerificarUsuarioRolEscuela (string nickname, string password)
        {
            return new ComandoVerificarUsuarioRolEscuela(nickname,password);
        }

        public static ComandoVerificarUsuarioRolUniversidad
            CrearComandoVerificarUsuarioRolUniversidad(string nickname, string password)
        {
            return new ComandoVerificarUsuarioRolUniversidad(nickname, password);
        }

        public static ComandoVerificarUsuarioRolEstudiante
            CrearComandoVerificarUsuarioRolEstudiante(string nickname, string password)
        {
            return new ComandoVerificarUsuarioRolEstudiante(nickname, password);
        }

        public static ComandoVerificarUsuarioRolProfesor
            CrearComandoVerificarUsuarioRolProfesor(string nickname, string password)
        {
            return new ComandoVerificarUsuarioRolProfesor(nickname, password);
        }

        public static ComandoCargarUsuarioDeEscuela
            CrearComandoCargarUsuarioDeEscuela(int idEscuela)
        {
            return new ComandoCargarUsuarioDeEscuela(idEscuela);
        }

        public static ComandoCargarUsuarioDeUniversidad
            CrearComandoCargarUsuarioDeUniversidad(int idUni)
        {
            return new ComandoCargarUsuarioDeUniversidad(idUni);
        }

        public static ComandoCargarUsuarioDeProfesor
            CrearComandoCargarUsuarioDeProfesor(int idProf)
        {
            return new ComandoCargarUsuarioDeProfesor(idProf);
        }

        public static ComandoCargarUsuarioDeEstudiante
            CrearComandoCargarUsuarioDeEstudiante(int idEst)
        {
            return new ComandoCargarUsuarioDeEstudiante(idEst);
        }

        public static ComandoEliminarProfesor
            CrearComandoEliminarProfesor(int idProfesor, int idEscuela)
        {
            return new ComandoEliminarProfesor(idProfesor, idEscuela);
        }

        public static ComandoMateriasAsignadasProfesor
            CrearComandoMateriasAsignadas(int idProfesor, int idEscuela)
        {
            return new ComandoMateriasAsignadasProfesor(idProfesor, idEscuela);
        }

        public static ComandoModificarProfesor
            CrearComandoModifcarProfesor(Profesor profesor, int idEscuela)
        {
            return new ComandoModificarProfesor(profesor, idEscuela);
        }

        public static ComandoConsultarProfesorExistente
            CrearComandoConsultarProfesorExistente(int idCedula, int idEscuela)
        {
            return new ComandoConsultarProfesorExistente(idCedula, idEscuela);
        }

        public static ComandoAgregarProfesorExistente
            CrearComandoAgregarProfesorExistente(Profesor profesor, int idEscuela)
        {
            return new ComandoAgregarProfesorExistente(profesor, idEscuela);
        }

        public static ComandoConsultarMateriaEscuela
            CrearComandoConsultarMateriaEscuela(int idEscuela)
        {
            return new ComandoConsultarMateriaEscuela(idEscuela);
        }

        //Consulta los profesores de una escuela, dada una escuela escogida por el usuario
        public static ComandoConsultarProfesoresPorEscuelaMateria
            CrearComandoConsultarProfesoresPorEscuelaMateria(int idEscuela, string nombreEscuela)
        {
            return new ComandoConsultarProfesoresPorEscuelaMateria(idEscuela, nombreEscuela);
        }
        
        // Consulta el perfil de un profesor cuando se logea
        public static ComandoModificarPerfilProfesor
            CrearComandoModificarMiPerfilProfesor(Profesor profesor)
        {
            return new ComandoModificarPerfilProfesor(profesor);
        }

        #endregion

        #region Comandos GRUPO 6
        public static ComandoAgregarSalon CrearComandoAgregarSalon(Salon miSalon, int universidad)
        {
            return new ComandoAgregarSalon(miSalon, universidad);
        }

        public static ComandoConsultarEdificios CrearComandoConsultarEdificios(int universidad)
        {
            return new ComandoConsultarEdificios(universidad);
        }

        public static ComandoConsultarSalon CrearComandoConsultarSalon(int opcion, string busqueda, Universidad universidad)
        {
            return new ComandoConsultarSalon(opcion,busqueda,universidad);
        }

        public static ComandoEliminarSalon CrearComandoEliminarSalon(Salon miSalon)
        {
            return new ComandoEliminarSalon(miSalon);
        }

        public static ComandoModificarSalon CrearComandoModificarSalon(Salon miSalon, int universidad)
        {
            return new ComandoModificarSalon(miSalon, universidad);
        }

        public static ComandoConsultarReporteMaterial CrearComandoConsultarReporteMaterial(int idProfesor) 
        {
            return new ComandoConsultarReporteMaterial(idProfesor);
        } 

        public static ComandoConsultarEvaluacionesSeccionMateriaProfesor CrearComandoConsultarReporteEvaluacionesMaterial(int idSeccion) 
        {
            return new ComandoConsultarEvaluacionesSeccionMateriaProfesor(idSeccion);
        } 
       

        #endregion 

        #region Comandos GRUPO 9
        public static ComandoConsultarHorario CrearComandoConsultarMateriasDeEstudiante(int idEstudiante)
        {
            return new ComandoConsultarHorario(idEstudiante);
        }

        public static ComandoConsultarPracticaEstudiante CrearComandoConsultarPracticasDeEstudiante(int idEstudiante)
        {
            return new ComandoConsultarPracticaEstudiante(idEstudiante);
        }

        public static ComandoHorarioMateria CrearComandoConsultarHorarioDeMateriaEstudiante(SeccionMateria seccion)
        {
            return new ComandoHorarioMateria(seccion);
        }

        public static ComandoHorarioPractica CrearComandoConsultarHorarioDePracticaEstudiante(Practica seccion)
        {
            return new ComandoHorarioPractica(seccion);
        }

        public static ComandoMateriasProfesor CrearComandoConsultarMateriasDeProfesor(int idProfesor)
        {
            return new ComandoMateriasProfesor(idProfesor);
        }

        public static ComandoPracticasProfesor CrearComandoConsultarPracticaProfesor(int idProfesor)
        {
            return new ComandoPracticasProfesor(idProfesor);
        }

        public static ComandoHorarioMateriaProfesor CrearComandoConsultarHorarioDeMateriaProfesor(SeccionMateria seccion)
        {
            return new ComandoHorarioMateriaProfesor(seccion);
        }

        public static ComandoHorarioPracticaProfesor CrearComandoConsultarHorarioDePracticaProfesor(Practica seccion)
        {
            return new ComandoHorarioPracticaProfesor(seccion);
        }

        public static ComandoEscuelaDeMateria CrearComandoNombreDeLaEscuela(String NombreMateria)
        {
            return new ComandoEscuelaDeMateria(NombreMateria);
        }

        public static ComandoUniversidadDeMateria CrearComandoNombreDeLaUniversidad(String NombreMateria)
        {
            return new ComandoUniversidadDeMateria(NombreMateria);
        }

        public static ComandoEscuelaUniversidadPractica CrearComandoNombreEscuelaUniversidad(int idPractica)
        {
            return new ComandoEscuelaUniversidadPractica(idPractica);
        }
        #endregion

        #region Comandos GRUPO 10
        
        /// <summary>
        /// Metodo que retorna una instacia de un comando que consulta las evaluaciones de una seccion
        /// </summary>
        /// <param name="seccion"></param>
        /// <returns></returns>
        public static ComandoConsultarMateriaSeccionEvaluacion CrearComandoConsultarMateriaSeccionEvaluacion(SeccionMateria seccion)
        {
            return new ComandoConsultarMateriaSeccionEvaluacion(seccion);
        }

        /// <summary>
        /// Metodo que retorna una instacia de un comando que consulta las notas de un estudiante de una evaluacion en especifico
        /// </summary>
        /// <param name="idEvaluacion"></param>
        /// <param name="idEstudiante"></param>
        /// <returns></returns>
        public static ComandoConsultarNotaEstudiante CrearComandoConsultarNotaEstudiante(int idEvaluacion, int idEstudiante)
        {
            return new ComandoConsultarNotaEstudiante(idEvaluacion, idEstudiante);
        }

        /// <summary>
        /// Metodo que retorna una instacia de un comando que ingresa una nota
        /// </summary>
        /// <returns></returns>
        public static ComandoInsertarNota CrearComandoInsertarNota(Nota nota)
        {
            return new ComandoInsertarNota(nota);
        }

        public static ComandoConsultarAlumnosSeccion CrearComandoConsultarAlumnosSeccion(SeccionMateria seccion)
        {
            return new ComandoConsultarAlumnosSeccion(seccion);
        }

        public static ComandoConsultarTodasMateria CrearComandoConsultarTodasMateria()
        {
            return new ComandoConsultarTodasMateria();
        }
        #endregion


        #region Comandos Grupo 11

    /*
        public static ComandoAgregarMateria CrearComandoAgregarMateria(Materia materia, int idEscuela)
        {
            return new ComandoAgregarMateria(materia, idEscuela);
        }

        public static ComandoEditarMateria CrearComandoEditarMateria(Materia materia)
        {
            return new ComandoEditarMateria(materia);
        }


        public static ComandoEliminarMateria CrearComandoEliminarMateria(int idMateria)
        {
            return new ComandoEliminarMateria(idMateria);
        }


        public static ComandoConsultarMateriasEscuela CrearComandoConsultarMateriasEscuela(int idEscuela)
        {

            return new ComandoConsultarMateriasEscuela(idEscuela);
        }

        */
        #endregion Comandos Grupo 11





        /// <summary>
        /// Metodo que retona una instancia de un comando para editar nota
        /// </summary>
        /// <param name="nota"></param>
        /// <returns></returns>
        public static ComandoEditarNota CrearComandoEditarNota(Nota nota)
        {
            return new ComandoEditarNota(nota);
        }






        #region Comandos GRUPO 7
        public static ComandoConsultarUniversidadesProfesor CrearComandoConsultarUniversidades(int idProfesor)
        {
            return new ComandoConsultarUniversidadesProfesor(idProfesor);
        }
        public static ComandoConsultarEscuelasProfesor CrearComandoConsultarEscuelas(string nombreUniv, int idProfesor)
        {
            return new ComandoConsultarEscuelasProfesor(nombreUniv, idProfesor);
        }

        public static ComandoConsultarCategoria CrearComandoConsultarCategorias(int idProfesor, int idSeccion)
        {
            return new ComandoConsultarCategoria(idProfesor, idSeccion);
        }

        public static ComandoConsultarMateriasProfesorPdf CrearComandoConsultarMateriasProfesorPdf(int idProfesor,string nombreUniv, string nombreEscuela)
        {
            return new ComandoConsultarMateriasProfesorPdf(idProfesor,nombreUniv, nombreEscuela);
        }
    
        public static ComandoConsultarSeccionesProfesorPdf CrearComandoConsultarSeccionesProfesorPdf(int idProfesor, string nombreUniv, string nombreEscuela, string nombreMateria)
        {
            return new ComandoConsultarSeccionesProfesorPdf(idProfesor, nombreUniv, nombreEscuela, nombreMateria);
        }

        public static ComandoConsultarArchivoPdf CrearComandoConsultarArchivos(int idSeccion, int idProfesor, string categoria)
        {
            return new ComandoConsultarArchivoPdf(idSeccion, idProfesor, categoria);
        }
        public static ComandoConsultarArchivoProfesor CrearComandoConsultarArchivoProfesor(int crn, int seccion)
        {
            return new ComandoConsultarArchivoProfesor(crn,seccion);
        }
        public static ComandoInsertarArchivoPdf CrearComandoInsertarArchivoPdf(OperacionesPdf archivoPdf, float tamañoArchivo, int crn, int idSeccion)
        {
            return new ComandoInsertarArchivoPdf(archivoPdf, tamañoArchivo, crn, idSeccion);
        }

        public static ComandoConsultarAllCategoriasPdf CrearComandoConsultarAllCategorias()
        {
            return new ComandoConsultarAllCategoriasPdf();
        }

        public static ComandoEliminarArchivoPdf crearComandoEliminarArchivoPdf(OperacionesPdf miArchivo, int idSeccion)
        {
            return new ComandoEliminarArchivoPdf(miArchivo, idSeccion);
        }


        public static ComandoConsultarSeccionesEstudianteArchivoPdf CrearComandoConsultarSeccionesEstudianteArchivoPdf(Estudiante estudiante)
        {
            return new ComandoConsultarSeccionesEstudianteArchivoPdf(estudiante);
        }
        public static ComandoConsultarArchivoEstudiante CrearComandoConsultarArchivoEstudiante(int seccion)
        {
            return new ComandoConsultarArchivoEstudiante(seccion);
        }
       

        #endregion

        /// <summary>
        /// Metodo que retona una instancia de un comando para consultar todas las materias de un profesor
        /// en el periodo academico actual
        /// </summary>
        /// <param name="profesor"></param>
        /// <returns></returns>
        public static ComandoConsultarMateriaProfesorPeriodo ConsultarMateriaProfesorPeriodo(Profesor profesor)
        {
            return new ComandoConsultarMateriaProfesorPeriodo(profesor);
        }

        public static ComandoConsultarMateriaEstudiantePeriodo CrearComandoConsultarMateriaEstudiantePeriodo(Estudiante estudiante)
        {
            return new ComandoConsultarMateriaEstudiantePeriodo(estudiante);
        }

        public static ComandoConsultarMateriaEscuelaPeriodo CrearComandoConsultarMateriaEscuelaPeriodo(Escuela escuela)
        {
            return new ComandoConsultarMateriaEscuelaPeriodo(escuela);
        }

    }
}